package eteam.aps.model.entity.sale;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import eteam.aps.common.entity.ParentEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 销售单
 *
 * @author Ll
 * @since 2024/01/09
 */
@TableName("zn_sale_order")
@ApiModel(value = "销售单", description = "销售单")
public class SaleOrder extends ParentEntity {

    /**
     * 单号;单号
     */
    @TableField("FOrderNumber")
    @ApiModelProperty(name = "单号", notes = "单号")
    @JsonIgnore
    private String fOrderNumber;

    /**
     * 通知单号日期【当前日期 y-m-d】
     */
    @TableField("FOrderDate")
    @ApiModelProperty(name = "通知单号日期【当前日期 y-m-d】", notes = "")
    @JsonIgnore
    private LocalDate fOrderDate;

    /**
     * 单别编号【2240】;单别编号
     */
    @TableField("FWorksheetCode")
    @ApiModelProperty(name = "单别编号【2240】", notes = "单别编号")
    @JsonIgnore
    private String fWorksheetCode;

    /**
     * 单别名称【销售订单】;单别名称
     */
    @TableField("FWorksheetName")
    @ApiModelProperty(name = "单别名称【销售订单】", notes = "单别名称")
    @JsonIgnore
    private String fWorksheetName;

    /**
     * 客户编号【选择编码自动映射名称】  not null
     */
    @TableField("FCustomerCode")
    @ApiModelProperty(name = "客户编号【选择编码自动映射名称】", notes = "客户编号【选择编码自动映射名称】")
    private String fCustomerCode;

    /**
     * 客户名称  not null
     */
    @TableField("FCustomerName")
    @ApiModelProperty(name = "客户名称", notes = "客户名称")
    private String fCustomerName;

    /**
     * 经办人  not null
     */
    @TableField("FHandlerName")
    @ApiModelProperty(name = "经办人", notes = "经办人")
    private String fHandlerName;

    /**
     * 经办人电话  not null
     */
    @TableField("FHandlerPhone")
    @ApiModelProperty(name = "经办人电话", notes = "经办人电话")
    private String fHandlerPhone;

    /**
     * 发货时间  not null
     */
    @TableField("FSendDate")
    @ApiModelProperty(name = "发货时间", notes = "发货时间")
    private LocalDateTime fSendDate;

    /**
     * 收货方  not null
     */
    @TableField("FShipper")
    @ApiModelProperty(name = "收货方", notes = "收货方")
    private String fShipper;

    /**
     * 发货地址  not null
     */
    @TableField("FSendAddress")
    @ApiModelProperty(name = "发货地址", notes = "发货地址")
    private String fSendAddress;

    /**
     * 收货地址  not null
     */
    @TableField("FReceiveAddress")
    @ApiModelProperty(name = "收货地址", notes = "收货地址")
    private String fReceiveAddress;

    /**
     * @since 2025/05/20
     * 发货类型  not null
     */
    @TableField("FFulfillmentType")
    @ApiModelProperty(name = "发货类型", notes = "发货类型")
    private String fFulfillmentType;

    public String getfFulfillmentType() {
        return fFulfillmentType;
    }

    public void setfFulfillmentType(String fFulfillmentType) {
        this.fFulfillmentType = fFulfillmentType;
    }

    /**
     * 物流单号  not null
     */
    @TableField("FLogisticsCode")
    @ApiModelProperty(name = "物流单号", notes = "物流单号")
    private String fLogisticsCode;

    /**
     * 物流公司名称  not null
     */
    @TableField("FLogisticsName")
    @ApiModelProperty(name = "物流公司名称", notes = "物流公司名称")
    private String fLogisticsName;

    /**
     * 发货物流  not null
     */
    @TableField("FSendLogistics")
    @ApiModelProperty(name = "发货物流", notes = "发货物流")
    private String fSendLogistics;
    /**
     * 提货地址
     */
    @TableField("FPickAddress")
    @ApiModelProperty(name = "提货地址", notes = "提货地址")
    private String fPickAddress;
    /**
     * 工厂名称
     */
    @TableField("FFactoryName")
    @ApiModelProperty(name = "工厂名称", notes = "工厂名称")
    private String fFactoryName;
    /**
     * 发货人
     */
    @TableField("FShipperPeople")
    @ApiModelProperty(name = "发货人", notes = "发货人")
    private String fShipperPeople;
    /**
     * 发货人电话
     */
    @TableField("FShipperPhone")
    @ApiModelProperty(name = "发货人电话", notes = "发货人电话")
    private String fShipperPhone;
    /**
     * 收货人
     */
    @TableField("FReceivePeople")
    @ApiModelProperty(name = "收货人", notes = "收货人")
    private String fReceivePeople;
    /**
     * 收货人电话
     */
    @TableField("FReceivePhone")
    @ApiModelProperty(name = "收货人电话", notes = "收货人电话")
    private String fReceivePhone;

    public String getfPickAddress() {
        return fPickAddress;
    }

    public void setfPickAddress(String fPickAddress) {
        this.fPickAddress = fPickAddress;
    }

    public String getfFactoryName() {
        return fFactoryName;
    }

    public void setfFactoryName(String fFactoryName) {
        this.fFactoryName = fFactoryName;
    }

    public String getfShipperPeople() {
        return fShipperPeople;
    }

    public void setfShipperPeople(String fShipperPeople) {
        this.fShipperPeople = fShipperPeople;
    }

    public String getfShipperPhone() {
        return fShipperPhone;
    }

    public void setfShipperPhone(String fShipperPhone) {
        this.fShipperPhone = fShipperPhone;
    }

    public String getfReceivePeople() {
        return fReceivePeople;
    }

    public void setfReceivePeople(String fReceivePeople) {
        this.fReceivePeople = fReceivePeople;
    }

    public String getfReceivePhone() {
        return fReceivePhone;
    }

    public void setfReceivePhone(String fReceivePhone) {
        this.fReceivePhone = fReceivePhone;
    }

    public String getfOrderNumber() {
        return fOrderNumber;
    }

    public void setfOrderNumber(String fOrderNumber) {
        this.fOrderNumber = fOrderNumber;
    }

    public LocalDate getfOrderDate() {
        return fOrderDate;
    }

    public void setfOrderDate(LocalDate fOrderDate) {
        this.fOrderDate = fOrderDate;
    }

    public String getfWorksheetCode() {
        return fWorksheetCode;
    }

    public void setfWorksheetCode(String fWorksheetCode) {
        this.fWorksheetCode = fWorksheetCode;
    }

    public String getfWorksheetName() {
        return fWorksheetName;
    }

    public void setfWorksheetName(String fWorksheetName) {
        this.fWorksheetName = fWorksheetName;
    }

    public String getfCustomerCode() {
        return fCustomerCode;
    }

    public void setfCustomerCode(String fCustomerCode) {
        this.fCustomerCode = fCustomerCode;
    }

    public String getfCustomerName() {
        return fCustomerName;
    }

    public void setfCustomerName(String fCustomerName) {
        this.fCustomerName = fCustomerName;
    }

    public String getfHandlerName() {
        return fHandlerName;
    }

    public void setfHandlerName(String fHandlerName) {
        this.fHandlerName = fHandlerName;
    }

    public String getfHandlerPhone() {
        return fHandlerPhone;
    }

    public void setfHandlerPhone(String fHandlerPhone) {
        this.fHandlerPhone = fHandlerPhone;
    }

    public LocalDateTime getfSendDate() {
        return fSendDate;
    }

    public void setfSendDate(LocalDateTime fSendDate) {
        this.fSendDate = fSendDate;
    }

    public String getfShipper() {
        return fShipper;
    }

    public void setfShipper(String fShipper) {
        this.fShipper = fShipper;
    }

    public String getfSendAddress() {
        return fSendAddress;
    }

    public void setfSendAddress(String fSendAddress) {
        this.fSendAddress = fSendAddress;
    }

    public String getfReceiveAddress() {
        return fReceiveAddress;
    }

    public void setfReceiveAddress(String fReceiveAddress) {
        this.fReceiveAddress = fReceiveAddress;
    }

    public String getfLogisticsCode() {
        return fLogisticsCode;
    }

    public void setfLogisticsCode(String fLogisticsCode) {
        this.fLogisticsCode = fLogisticsCode;
    }

    public String getfLogisticsName() {
        return fLogisticsName;
    }

    public void setfLogisticsName(String fLogisticsName) {
        this.fLogisticsName = fLogisticsName;
    }

    public String getfSendLogistics() {
        return fSendLogistics;
    }

    public void setfSendLogistics(String fSendLogistics) {
        this.fSendLogistics = fSendLogistics;
    }
}
